#pragma once

#include "IOperation.h"

namespace HotKeyOperation
  {
  class ExecOperation : public IOperation
    {
    public:
      ExecOperation(){};
      ExecOperation(const wchar_t * i_exec_command, bool i_wait_for_process = true, 
        unsigned int i_delay_before = 0, unsigned int i_delay_after = 0);
      ExecOperation(std::wstring & i_exec_command, bool i_wait_for_process = true, 
        unsigned int i_delay_before = 0, unsigned int i_delay_after = 0);

    private:
      friend boost::serialization::access;
      template <class Archive>
      void serialize(Archive & ar, const unsigned int version)
        {
        ar & boost::serialization::base_object<IOperation>(*this)
          & m_exec_command
          & m_wait_for_process;
        }

      virtual void DoOperate();

      std::wstring m_exec_command; 
      bool m_wait_for_process;
    };
  }